package com.efuture.chapterfive

/* @Description: Kotlin内部类和嵌套类学习
 * @Auther: zhaoshanshan
 * @Date: 2022/03/07/1:42 下午
 */
  class Boby(_bodyInfo:String){
     val bodyInfo = _bodyInfo
      //心脏类
     inner class Heart{//要想内部类访问外部类的信息 必须在内部类class前面添加inner关键字
      fun run()= println("心脏访问${bodyInfo}的信息")
     }
     //肾脏类
    inner class Kidney{
         fun run()= println("肾脏访问${bodyInfo}的信息")
    }
    //手类
    inner class Hand{
        inner class LeftHand{//左手
          fun run()= println("左手访问${bodyInfo}的信息")
        }
        inner class RigheHand{//右手
          fun run()= println("右手访问${bodyInfo}的信息")
        }
    }
  }

//嵌套类 外部类可以访问内部类方法 内部类不可以访问外部类
class Outer{//外部类
    fun show(){
      Inter().interMethod();
    }
    class Inter{//内部类
     fun interMethod(){
        println("我是内部类方法")
     }
    }
}

fun main() {

    //调用内部类方法
    Boby("身体").Heart().run()
    Boby("身体").Kidney().run()
    Boby("身体").Hand().LeftHand().run()
    Boby("身体").Hand().RigheHand().run()
    Outer().show()
}